/* Copyright (c) 2025 Beijing Semidrive Technology Corporation
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/********************************************************************************************************
 *  \file     Mcal_Types.h                                                                                  *
 *  \brief    This file contains interface header for DMA MCAL driver.                                  *
 *                                                                                                      *
 * <table>                                                                                              *
 * <tr><th>Date           <th>Version                                                                   *
 * <tr><td>2025/01/06     <td>1.0.0                                                                     *
 * </table>                                                                                             *
 *******************************************************************************************************/
#ifndef MCALLIB_H
#define MCALLIB_H

#ifdef __cplusplus
extern "C" {
#endif
/********************************************************************************************************
 *                                      Include header files                                            *
 *******************************************************************************************************/
#include "Std_Types.h"
#include "Platform_Types.h"
/********************************************************************************************************
 *                                      Macro definition                                                *
 *******************************************************************************************************/
#define MCALLIB_LOCAL                                                       static
#define MCALLIB_LOCAL_INLINE                                                static inline

/** \brief  ERROR:Error due invalid parameters. */
#define MCALLIB_E_PARAMS                                                (Std_ReturnType)(0x80U)
/** \brief  ERROR:Error due PMU is disable. */
#define MCALLIB_E_PMU_CNT                                               (Std_ReturnType)(0x81U)
/** \brief  ERROR:Error due read counter timeout. */
#define MCALLIB_E_TIMEOUT                                               (Std_ReturnType)(0x82U)
/** \brief  ERROR:NULL_PTR passed as parameter. */
#define MCALLIB_E_PARAM_POINTER                                         (Std_ReturnType)(0x83U)
/** \brief  ERROR:Error due invalid size. */
#define MCALLIB_E_PARAM_SIZE                                            (Std_ReturnType)(0x84U)
/** \brief  ERROR:Error due memory compare fail. */
#define MCALLIB_E_MEM_CMP_FAIL                                          (Std_ReturnType)(0x85U)
/** \brief  ERROR:Error due scr is lock. */
#define MCALLIB_E_SCR_LOCK                                              (Std_ReturnType)(0x86U)
/** \brief  ERROR:Error due scr is lock. */
#define MCALLIB_E_SCR_NO_NEED_LOCK                                      (Std_ReturnType)(0x87U)
/** \brief  ERROR:Error due cache is not enable. */
#define MCALLIB_E_CACHE_UNENABLE                                        (Std_ReturnType)(0x88U)

#ifdef __cplusplus
}
#endif
#endif /* MCALLIB_H */

